/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import Utilidades.ManejoFechas;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Javier Arzarello
 */
public class Hipodromo {

    private String nombre;
    private String direccion;
    private ArrayList<Jornada> jornadas;

    public Hipodromo(String nombre, String direccion) {
        this.nombre = nombre;
        this.direccion = direccion;
        this.jornadas = new ArrayList();
    }

    public ArrayList<Jornada> getJornadas() {
        return jornadas;
    }

    public void setJornadas(ArrayList<Jornada> jornadas) {
        this.jornadas = jornadas;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public boolean validar() {
        return getNombre() != null && !getNombre().trim().isEmpty()
                && getDireccion() != null && !getDireccion().trim().isEmpty();
    }

    public boolean equals(Object o) {
        Hipodromo h = (Hipodromo) o;
        return getNombre().equalsIgnoreCase(h.getNombre());
    }

    @Override
    public String toString() {
        return nombre;
    }

    public Jornada buscarJornada(Date fecha) {
        ManejoFechas validador = new ManejoFechas();
        for (Jornada j : jornadas) {
            if (validador.TruncarFecha(j.getFecha()).equals(validador.TruncarFecha(fecha))) {
                return j;
            }
        }
        return null;
    }

    //MANEJO DE LAS JORNADAS
    public void agregarJornada(Jornada j) {
        this.jornadas.add(j);
    }

    public void agregarJornada(Date d) {
        Jornada j = new Jornada(d);
        this.jornadas.add(j);
    }

    //BUSCAR CABALLOS EN LAS JORNADAS DEL HIPODROMO
    public boolean buscarCaballoenJornada(Date fecha, Caballo caballo) {
        Jornada j = buscarJornada(fecha);
        if (j == null) {
            return false;
        } else {
            boolean resultado = j.buscarCaballoCarrera(caballo);
            return resultado;
        }

    }

}
